﻿// Models/Components/BaseComponent.cs
using Newtonsoft.Json;

namespace AmisSdk.Models.Components
{
    public class Form : BaseComponent
    {
        public override string Type => "form";

        /// <summary>
        /// 表单标题。
        /// </summary>
        [JsonProperty("title")]
        public string Title { get; set; }

        /// <summary>
        /// 表单的提交 API 地址。
        /// </summary>
        [JsonProperty("api")]
        public string Api { get; set; }

        /// <summary>
        /// 表单控件列表。
        /// </summary>
        [JsonProperty("controls")]
        public List<BaseComponent> Controls { get; set; } = new List<BaseComponent>();

        /// <summary>
        /// 表单的验证规则。
        /// </summary>
        [JsonProperty("validation")]
        public object Validation { get; set; }  // 可选，可以定义表单级别的验证规则

        /// <summary>
        /// 表单布局方式。
        /// </summary>
        [JsonProperty("mode")]
        public string Mode { get; set; } = "normal";  // normal, inline

        /// <summary>
        /// 表单的按钮排列方式。
        /// </summary>
        [JsonProperty("actionsPosition")]
        public string ActionsPosition { get; set; } = "right";  // left, right, center
    }
}
